package cn.ym.mall.dao;

import cn.ym.mall.entity.Order;

import java.sql.SQLException;
import java.util.List;

/**
 * 订单DAO接口
 */
public interface OrderDao {
    /**
     * 新增订单
     * @param order 添加的订单
     * @return 返回成功的条数
     */
    public Integer addOrder(Order order) throws SQLException;

    /**
     * 根据订单id删除订单
     * @param oid 订单
     * @return 返回删除条数
     */
    public Integer deleteByOid(Integer oid) throws SQLException;

    /**
     * 通过订单id查询订单信息
     * @param oid
     * @return
     */
    public Order getOrderByOid(Integer oid) throws SQLException;

    /**
     * 查询所有的订单
     * @return 订单集合
     *//*
    public List<Order> getAllOrder() throws SQLException;*/

    /**
     * 查询订单总数
     * @return
     */
    public long getOrderCount() throws SQLException;

    /**
     * 通过商店编号统计订单总数
     * @param sid 商店编号
     * @return 返回条数
     */
    public long getCountBySid(Integer sid) throws SQLException;

    /**
     * 通过商家id和订单状态查询订单信息
     * @param sid
     * @return
     * @throws SQLException
     */
    public List<Order> getSumBySid(Integer sid) throws SQLException;

    /**
     * 通过商店编号查询订单信息
     * @param sid 商店编号
     * @return 订单集合
     *//*
    public List<Order> getAllOrderBySid(String sid) throws SQLException;*/

    /**
     * 分页查询订单
     * @param pageNo
     * @param pageSize
     * @return
     */
    public List<Order> getPageOrder(Integer pageNo,Integer pageSize) throws SQLException;

    /**
     * 通过商店编号查询订单（分页）
     * @param sid
     * @param pageNo
     * @param pageSize
     * @return
     */
    public List<Order> getPageOrderBySid(Integer sid,Integer pageNo,Integer pageSize) throws SQLException;

    /**
     * 修改订单
     * @param order 订单
     * @return 返回更新成功的条数
     *//*
    public Integer updateOrder(Order order) throws SQLException;*/

    /**
     * 通过用户id查询订单（分页）
     * @param uid
     * @param pageNo
     * @param pageSize
     * @return
     * @throws SQLException
     */
    public List<Order> getPageOrderByuid(Integer uid,Integer pageNo,Integer pageSize) throws SQLException;

}

